﻿using System;
using System.Collections.Generic;
using System.Text;
using YSC_Core.BLL.Domain.BackstageModels;
using YSC_Core.BLL.Domain.CommonModels;
using YSC_Core.BLL.Domain.Entity;

namespace YSC_Services.BLL.Services.Interfaces
{
    /// <summary>
    /// 基数据接口
    /// </summary>
    public interface IBasisBackstageServices
    {
        /// <summary>
        /// 数据字典列表
        /// </summary>
        /// <param name="index">起始页</param>
        /// <param name="size">每页数量</param>
        /// <param name="sasearch">查询条件</param>
        /// <returns></returns>
        PaginationModel GetDictionaryAll(int index, int size, string sasearch);

        /// <summary>
        /// 数据类型列表
        /// </summary>
        /// <returns></returns>
        PaginationModel GetDictionaryTypeAll();

        /// <summary>
        /// 数据字典详情
        /// </summary>
        /// <param name="getDId">主键Id</param>
        /// <returns></returns>
        ReturnValueModel GetDictionary(string getDId);

        /// <summary>
        /// 数据字典新增修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdateDictionary(DictionaryModels model);

        /// <summary>
        /// 数据字典删除
        /// </summary>
        /// <param name="getDId">主键Id</param>
        /// <returns></returns>
        ReturnValueModel DelectDictionary(string getDId);

        /// <summary>
        /// 地区列表
        /// </summary>
        /// <param name="level">等级:1省份2市3区</param>
        /// <param name="code">上级编码</param>
        /// <param name="name">城市名称</param>
        /// <returns></returns>
        PaginationModel GetAreaAll(int level, string code, string name);

        /// <summary>
        /// 地区树
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        object GetAreaTreeAll(string name);

        /// <summary>
        /// 鱼种树
        /// </summary>
        /// <returns></returns>
        object GetFishTreeAll();


        PaginationModel GetPlaceOfOriginUnitXAll(int index, int size, string sasearch);

        /// <summary>
        /// 产地单位列表
        /// </summary>
        /// <param name="index"></param>
        /// <param name="size"></param>
        /// <param name="sasearch"></param>
        /// <returns></returns>
        PaginationModel GetPlaceOfOriginUnitAll(int index, int size, string sasearch);

        /// <summary>
        /// 产地单位详情
        /// </summary>
        /// <param name="GetMarketId"></param>
        /// <returns></returns>
        ReturnValueModel GetPlaceOfOriginUnit(string placeOfOId);

        /// <summary>
        /// 新增修改产地单位
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdatePlaceOfOriginUnit(PlaceOfOriginUnitModels model);

        /// <summary>
        /// 产地单位删除
        /// </summary>
        /// <param name="GetMarketId"></param>
        /// <returns></returns>
        ReturnValueModel DelectPlaceOfOriginUnit(string placeOfOId);

        /// <summary>
        /// 市场单位列表
        /// </summary>
        /// <param name="index">起始页</param>
        /// <param name="size">每页数量</param>
        /// <param name="sasearch">查询条件</param>
        /// <returns></returns>
        PaginationModel GetMarketUnitAll(int index, int size, string sasearch);

        /// <summary>
        ///  市场单位详情
        /// </summary>
        /// <param name="GetMarketId">主键Id</param>
        /// <returns></returns>
        ReturnValueModel GetMarketUnit(string GetMarketId);

        /// <summary>
        ///  市场单位新增修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdateMarketUnit(MarketUnitModels model);

        /// <summary>
        ///  市场单位删除
        /// </summary>
        /// <param name="GetMarketId">主键Id</param>
        /// <returns></returns>
        ReturnValueModel DelectMarketUnit(string GetMarketId);

        /// <summary>
        /// 鱼种列表
        /// </summary>
        /// <param name="index"></param>
        /// <param name="size"></param>
        /// <param name="status"></param>
        /// <param name="sasearch"></param>
        /// <returns></returns>
        PaginationModel GetFishSpeciesAll(int index, int size, int status, string sasearch);

        /// <summary>
        /// 鱼种详情
        /// </summary>
        /// <param name="fishId"></param>
        /// <returns></returns>
        ReturnValueModel GetFishSpecies(string fishId);

        /// <summary>
        /// 鱼种新增修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdateFishSpecies(FishSpeciesModel model);

        /// <summary>
        /// 鱼种基本信息统一更新
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddMediaFishSpecies(FishSpeciesModel model);

        /// <summary>
        ///  鱼种删除
        /// </summary>
        /// <param name="fishId">主键Id</param>
        /// <returns></returns>
        ReturnValueModel DelectFishSpecies(string fishId);

        /// <summary>
        /// 文章列表
        /// </summary>
        /// <param name="index">起始页</param>
        /// <param name="size">每页数量</param>
        /// <param name="sasearch">查询条件</param>
        /// <returns></returns>
        PaginationModel GetNewsArticleAll(int index, int size, string sasearch, string type);
        /// <summary>
        /// 添加修改文章信息
        /// </summary>
        /// <param name="newsArticle"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdateNewsArticle(NewsArticle newsArticle);

        /// <summary>
        ///文章详情
        /// </summary>
        /// <param name="getDId">主键Id</param>
        /// <returns></returns>
        ReturnValueModel GetNewsArticle(string getDId);

        /// <summary>
        /// 根据Id修改状态
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        ReturnValueModel GetUpdateStatusById(string Id, string type);

        /// <summary>
        /// 文件上传
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdateMediaImageUpdate(MediaImageModel model);

        /// <summary>
        /// 鱼种月报表
        /// </summary>
        /// <param name="fishName"></param>
        /// <param name="province"></param>
        /// <param name="city"></param>
        /// <param name="unitType"></param>
        /// <param name="dateYear"></param>
        /// <returns></returns>
        ReturnValueModel FishSpeciesMonthReport(string dateYear, string fishName, string province, string city, int unitType);

        /// <summary>
        /// 鱼种年报表
        /// </summary>
        /// <param name="fishType"></param>
        /// <param name="province"></param>
        /// <param name="city"></param>
        /// <param name="dateYear"></param>
        /// <param name="unitType"></param>
        /// <returns></returns>
        ReturnValueModel FishSpeciesYearReport(string fishType, string province, string city, string dateYear, int unitType);


        /// <summary>
        /// 市场鱼价_走势报表
        /// </summary>
        /// <param name="fishName">鱼种</param>
        /// <param name="province">省份</param>
        /// <param name="city">城市</param>
        /// <param name="type">报表类型:0一周，1三月2一年</param>
        /// <returns></returns>                
        ReturnValueModel GetMarketPriceTrendReport(string fishName, string province, string city, int type);

        /// <summary>
        /// 塘口鱼价_走势报表
        /// </summary>
        /// <param name="fishName">鱼种</param>
        /// <param name="province">省份</param>
        /// <param name="city">城市</param>
        /// <param name="type">报表类型:0一周，1三月2一年</param>
        /// <returns></returns>
        ReturnValueModel GetPlaceOfOriginPriceTrendReport(string fishName, string province, string city, int type);

        /// <summary>
        /// 鱼种列表
        /// </summary>
        /// <param name="fishType">鱼种类别</param>
        /// <returns></returns>
        ReturnValueModel GetFingerlingTypeAll(string fishType);

        /// <summary>
        /// 市场鱼价统计分析
        /// </summary>
        /// <param name="province"></param>
        /// <param name="areName"></param>
        /// <param name="areCode"></param>
        /// <returns></returns>
        PaginationModel GetMarkePriceStatiSticsReport(string province, string areName, string areCode);


        /// <summary>
        /// 市场鱼价列表
        /// </summary>
        /// <param name="index">页码</param>
        /// <param name="size">数量</param>
        /// <param name="areaName">地区名称</param>
        /// <param name="fishType">鱼种类别</param>
        /// <param name="fishName">鱼种名称</param>
        /// <returns></returns>
        ReturnValueModel GetMarketPriceAll(int index, int size, string areaName, string fishType, string fishName);

        /// <summary>
        /// 塘口鱼价列表
        /// </summary>
        /// <param name="index">页码</param>
        /// <param name="size">数量</param>
        /// <param name="areaName">地区名称</param>
        /// <param name="fishType">鱼种类别</param>
        /// <param name="fishName">鱼种名称</param>
        /// <returns></returns>
        ReturnValueModel GetPlaceOfOriginPriceAll(int index, int size, string areaName, string fishType, string fishName);

        /// <summary>
        /// 鱼种列表媒体
        /// </summary>
        /// <param name="index"></param>
        /// <param name="size"></param>
        /// <param name="sasearch"></param>
        /// <returns></returns>
        PaginationModel GetFishSpeciesAppAll(int index, int size, string sasearch);
    }
}
